package cronTask

import (
	"fmt"
	"project1/db"
	"project1/dbmodel"
	"time"
)

type BusinessTask struct{}

var IBusinessTask *BusinessTask

// 每30秒更新一次所有用户表用户的在线状态
func (b *BusinessTask) UpdateUserOnlineStatus() {
	var user []dbmodel.User
	err := db.GormDB.Where("online_status = 1").Find(&user).Error
	if err != nil {
		fmt.Printf("更新用户表用户在线状态查询失败: %s\n", err.Error())
		return
	}

	if len(user) > 0 {
		for i, _ := range user {
			user[i].OnlineStatus = 0
		}
		err = db.GormDB.Save(&user).Error
		if err != nil {
			fmt.Printf("更新用户表用户在线状态失败: %s\n", err.Error())
			return
		}
	}

	timeNow := time.Now().Format("2006-01-02 15:04:05")
	fmt.Printf("[%s] -- 更新用户表用户在线状态 在线账号数:%d\n", timeNow, len(user))
}
